home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / fsw / zm302 / zm302_m.lzh / ZM13.MAN < prev    next >
Text File  |  1996-12-02  |  45KB  |  1,188 lines

  1.  
  2.         MEASURE13
  3.  
  4.     ワークエリアとワークビュアZSV.R
  5.  
  6.  
  7.  ここでは演奏トラックワークとその他のZMUSIC Ver.3.0の
  8.  
  9. ワーク、ワークビュアZSV.Rについての解説を行います。
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21. 13.1.  演奏トラックワーク
  22.  
  23. [注意]
  24.  
  25. ・文中の(.b)(.w)(.l)および(ds.b)(ds.w)(ds.l)等はデータ長を表している。
  26.  
  27. (ds.b)/(.b)  バイトサイズ
  28. (ds.w)/(.w)  ワードサイズ(2バイト)
  29. (ds.l)/(.l)  ロングワードサイズ(4バイト)
  30.  
  31. ・[]で表される数値はデフォルトであることを意味する。
  32.  
  33. ・1つのワークアドレスに2つ以上のワークが設定されていることがある。
  34.  
  35. ・具体的なワークへのアクセス法はリスト1、リスト2のようにして行う。
  36. -----------------------------リスト1----------------------------------
  37. Z_MUSIC macro   func    *ZMUSIC Ver.3.0のファンクションコール・マクロ
  38.         moveq.l func,d0
  39.         trap    #3
  40.         endm
  41.  
  42.         moveq.l #n,d1            *トラック番号:0≦n≦65534
  43.     Z_MUSIC    #ZM_GET_PLAY_WORK
  44.  
  45. *アクセス例
  46.  
  47.         move.w  p_step_time(a0),d0    *トラックnのある瞬間の
  48.                                       *ステップタイムを得る
  49. ----------------------------------------------------------------------
  50.  
  51. -----------------------------リスト2----------------------------------
  52. Z_MUSIC macro   func    *ZMUSIC Ver.3.0のファンクションコール・マクロ
  53.         moveq.l func,d0
  54.         trap    #3
  55.         endm
  56.  
  57.         moveq.l #0,d1              *トラック番号=1
  58.         Z_MUSIC #ZM_GET_PLAY_WORK    *a0:トラック1の演奏トラックワークの
  59.                     *先頭アドレス
  60.         move.l  a0,seq_wk_tbl        *ベースアドレスとなるのでこれを格納
  61.  
  62.       *トラック12のワーク先頭アドレスを求める時
  63.       movea.l seq_wk_tbl(pc),a0        *ベースアドレス取り出し
  64.       moveq.l #11,d0            *トラック番号12(内部表現では11)
  65.       lsl.w   #trwk_size_,d0            *1トラック分の演奏トラックワークサイズ
  66.       adda.w  d0,a0                  *a0:トラック12のワーク先頭アドレス 
  67.  
  68. *アクセス例
  69.       move.w  p_step_time(a0),d0    *トラック12のある瞬間の
  70.                                     *ステップタイムを得る
  71.  
  72. seq_wk_tbl:   ds.l    1            *ベースアドレス退避エリア
  73. ----------------------------------------------------------------------
  74.  
  75. ・ワークの不当な書き替えは、演奏に支障をきたすだけでなく、ZMUSICの暴走を
  76.  
  77.   引き起こす可能性もあるため、細心の注意を必要とする。また、特殊な使用目的
  78.  
  79. 以外では、各ワークは読み出し専用と考え、書き替えはなるべく行わないように
  80.  
  81. したほうがよい。
  82.  
  83.   各ワークは、必ずしも使用されているとは限らず、条件によっては、そのワークが
  84.  
  85. 持つ値は何の意味も持たない場合がある。例えばPMOD(ピッチモジュレーション,
  86.  
  87. ビブラート)のスイッチp_pmod_sw(.b)がOFF(0)の場合、PMOD関連ワークに格納されて
  88.  
  89. いる値は何の意味も持たない。
  90.  
  91.   また、MMLやコマンドで与えたパラメータ値とワーク内部で表現される
  92.  
  93. 内部表現形式とは多少の食い違いがあるので注意すること。例えば音色番号は
  94.  
  95. MMLでは1~32768であるが、ワーク(内部表現)では1引いた0~32767となっている。
  96.  
  97. ・自作プログラムからZMUSIC Ver.3.0のワークを参照する場合は以下に示すワーク
  98.  
  99. アドレス名 をラベル定義化した LABEL.MAC をインクルードするとよい。
  100.  
  101. ----------------ノートワーク--------------------------------------------------
  102. p_note:        ds.b    4*16    *ノートオンテーブル
  103.  
  104. ・ノートワークp_noteは以下の構成を取る
  105.  
  106. k_note        ds.b    1    *.b ノートオンしたノートナンバー[-1]
  107.                 *   (実際にKey OFFされるとd7=1)
  108. k_velo:        ds.b    1    *.b 発音ベロシティ[-1]
  109.                 *   (ゲートタイムが0になるとd7=1)
  110. k_gate_time:    ds.w    1    *.w gate time[?]
  111.                 *   (tieは1回の割り込み内では0,
  112.                 *    割り込みを出ると-1)
  113. ----------------基本パラメータ------------------------------------------------
  114. p_step_time:    ds.w    1    *.w ステップタイム
  115. p_track_stat:    ds.b    1    *.b トラックステータス
  116.                 *($00:演奏中 $80:死亡 $01:終了
  117.                 * $02:停止中 $40:同期待ち)
  118. p_track_mode:    ds.b    1    *.b トラックモード($80:Keyoff無し $00:通常)
  119. p_trkfrq:    ds.b    1    *.b 割り込み頻度(マスタワーク)
  120. p_trkfrq_wk:    ds.b    1    *.b 割り込み頻度(実行ワーク)
  121. p_type:        ds.w    1    *.w 音源種別
  122.                 *(FM:0 ADPCM:1 MIDI1~4:$8000~$8003
  123.                 * PATTERN:$7fff)
  124. p_ch:        ds.w    1    *.w チャンネル番号(0~32767)
  125. p_data_pointer:    ds.l    1    *.l 現在のコマンドポインタアドレス
  126. p_now_pointer:    ds.l    1    *.l 現在実行中のCMDのアドレス
  127. ----------------アフタータッチシーケンス関連----------------------------------
  128. p_trk_seq_flg:    ds.b    1    *.b d7:VSEQ処理フラグ
  129. p_aftc_n:    ds.b    1    *.b アフタータッチシーケンスのポインタ(-1,0~7)
  130. p_aftc_omt:    ds.b    1    *.b アフタータッチシーケンス省略フラグ[0]
  131. p_aftc_rltv:    ds.b    1    *.b アフタータッチシーケンス相対値フラグ[0]
  132. p_aftc_flg:    ds.b    1    *.b アフタータッチシーケンス動作フラグ[0]
  133.                 *d0 アフタータッチシーケンス 初めてか違うか([0]:はじめて 1:違う)
  134.                 *d5 アフタータッチシーケンス 休符時に同期するか(1:Yes,[0]:No)
  135.                 *d6 アフタータッチシーケンス タイ時に同期するか(1:Yes,[0]:No)
  136.                 *d7 アフタータッチシーケンス キーオン毎に同期するか([1]:Yes,0:No)
  137. p_aftc_level:    ds.b    1    *.b 現在実行中のアフタータッチ値[-1]
  138. p_aftc_tbl:    ds.b    8    *.b アフタータッチシーケンス値テーブル*8
  139. p_aftc_sw:    ds.b    1    *.b アフタータッチシーケンスのスイッチ
  140.                 *   ([0]=OFF,$ff=1/8 MODE ON,$01=OPTIONAL MODE ON)
  141. p_aftc_sw2:    ds.b    1    *.b アフタータッチシーケンスのスイッチ保存ワーク
  142.                 *   ([0]=OFF,$ff=1/8 MODE ON,$01=OPTIONALMODE ON)
  143. p_aftc_1st_dly:    ds.w    1    *.w アフタータッチシーケンス初期ディレイ[0]
  144. p_aftc_8st_tbl:    ds.w    8    *.w アフタータッチシーケンスディレイ値*8
  145. p_aftc_dly2:    ds.w    1    *.w アフタータッチシーケンスディレイワーク
  146. p_aftc_syncnt:    ds.w    1    *.w 同期カウント    ([1]~65535)
  147. p_aftc_syncnt2:    ds.w    1    *.w 同期カウント実行ワーク([1]~65535)
  148.         ds.l    1
  149. ----------------ピッチモジュレーション(ビブラート)関連------------------------
  150. p_pmod_dpndpt:    ds.w    1    *.w PMOD振幅増減モードの加算量(-32768~[0]~32767)
  151. p_pmod_dpt_tbl:    ds.w    8    *8w PMOD振幅値テーブル [0]
  152. p_pmod_dpnspd:    ds.w    1    *.w PMOD振幅増減モードの振幅値加算周期([0]-32767)
  153. p_pmod_spd_tbl:    ds.w    8    *8w PMODスピード値テーブル[mod_dflt]
  154. p_pmod_dpt_now:    ds.w    1    *.w PMOD現在の実行振幅値[0]
  155. p_pmod_wf:    ds.w    1    *.w PMOD波形タイプ[2]
  156.                 *   プリセット波形:0~7
  157.                 *   ユーザー波形:$8000+(0-32767)
  158. p_pmod_1st_dly:    ds.w    1    *.w PMOD初期ディレイ [0]
  159. p_pmod_8st_tbl:    ds.w    8    *8w PMODの振幅変化ディレイ
  160. p_pmod_stp_tbl:    ds.l    8    *8l PMOD加算ステップ値テーブル
  161.                 *   (波形タイプ=矩形波,ノイズ,波形メモリでは
  162.                 *    振幅値が格納される)
  163. p_pmod_sw:    ds.b    1    *.b PMOD・スイッチ
  164.                 *   ([0]=OFF,$ff=1/8 MODE ON,$01=OPTIONAL MODE ON)
  165. p_pmod_sw2:    ds.b    1    *.b PMOD・スイッチ保存
  166.                 *   ([0]=OFF,$ff=1/8 MODE ON,$01=OPTIONAL MODE ON)
  167. p_pmod_chain:    ds.b    1    *.b PMODの接続フラグ
  168.                 *   (-1:波形接続完了,0:即接続可能,1:接続待機中,[2]:初回)
  169. p_pmod_flg:    ds.b    1    *.b PMODの動作フラグ[0]
  170.                 *d0 PMOD 初めてか違うか([0]:はじめて,1:違う)
  171.                 *d1 PMOD 振幅を増加減衰させるモード([0]:OFF,1:ON)
  172.                 *d2 PMOD 波形接続可能か([0]:No,1:Yes)
  173.                 *d3 PMOD 波形の値を休符の時も更新([0]:NO,1:YES)
  174.                 *d4 PMOD 波形の値をキーオン毎に更新するモード([0]:OFF,1:ON)
  175.                 *d5 PMOD 休符時に同期するか(1:Yes,[0]:No)
  176.                 *d6 PMOD タイ時に同期するか(1:Yes,[0]:No)
  177.                 *d7 PMOD キーオン毎に同期するか([1]:Yes,0:No)
  178. p_pmod_mode:    ds.b    1    *.b MIDI PMODモード
  179.                 *   ([-1]:通常,0:FM互換拡張,1:MIDI互換拡張)
  180. p_pmod_omt:    ds.b    1    *.b 1/8 MODE,OPTIONAL MODEの省略ビットパターン
  181.                 *   (振幅一個の時は[$01])
  182. p_pitch_last:    ds.w    1    *.w 前回出力したベンダー値 [-1]
  183. p_pmod_step2:    ds.l    1    *.l PMOD実行ステップ(Fixed)
  184. p_pmod_dly2:    ds.w    1    *.w PMOD・ディレイ実行ワーク
  185. p_pmod_spd:    ds.w    1    *.w PMOD・スピード
  186. p_pmod_spd2:    ds.w    1    *.w PMOD・スピードワーク
  187. p_pmod_pitch:    ds.l    1    *.l PMOD・ピッチワーク(Fixed)
  188. p_pmod_step_next: ds.l    1    *.l 次にくる予定のステップ
  189. p_pmod_spd_next:  ds.w    1    *.w 次にくる予定のスピード
  190. p_wvpm_start:    ds.l    1    *.l 波形メモリ開始アドレス
  191. p_wvpm_point:    ds.l    1    *.l 波形メモリ現在のポインタ
  192. p_wvpm_end:    ds.l    1    *.l 波形メモリ終了アドレス
  193.         ds.b    1
  194. p_wvpm_lpmd:    ds.b    1    *.b 波形メモリループモード
  195. p_wvpm_lpst:    ds.l    1    *.l 波形メモリループ開始アドレス
  196. p_wvpm_lped:    ds.l    1    *.l 波形メモリループ終了アドレス
  197. p_wvpm_lptm:    ds.l    1    *.l 波形メモリループ回数(0=∞)
  198. p_wvpm_lptm2:    ds.l    1    *.l 波形メモリループ回数実行ワーク(0=∞)
  199. p_altp_flg:    ds.b    1    *.b 波形メモリ反復モードフラグ
  200. p_pmod_n:    ds.b    1    *.b 8ポイント・PMOD・テーブルポインタ(-1,0~7)
  201. p_pmod_wf2:    ds.w    1    *.w PMOD実行波形タイプ[2]
  202.                 *   プリセット波形:0~7
  203.                 *   ユーザー波形:$8000+(0-32767))
  204. p_pmod_dpnrpt:    ds.w    1    *.w 振幅増減処理を何回行うか(0~32767,[0]:∞)
  205. p_pmod_rndcnt:    ds.w    1    *.w 波形が何周したか(0-32767)
  206. p_pmod_dpntime:    ds.w    1    *.w 増減処理を何回行ったか(0-65535)
  207. p_pmod_syncnt:    ds.w    1    *.w 同期カウント    ([1]~65535)
  208. p_pmod_syncnt2:    ds.w    1    *.w 同期カウント実行ワーク([1]~65535)
  209.         ds.l    16
  210.  
  211. p_arcc_param:    ds.b    __arcc_len*4    *ARCCワーク
  212.                     *(構成つにいては後述)
  213. p_vseq_param:    ds.b    __arcc_len    *エンハンスド・ベロシティ・シーケンス・ワーク
  214.                     *(構成つにいては後述)
  215. ----------------ポルタメント&ディチューン関係----------------------------------
  216. p_detune:    ds.w    1    *.w デチューン(オートベンドの開始値にもなる)[0]
  217. p_special_tie:    ds.w    1    *.w MIDI専用のスペシャル・タイ用ピッチワーク[0]
  218. p_port_dly:    ds.w    1    *.w ポルタメントディレイ[0]
  219. p_port_cnt:    ds.w    1    *.w ポルタメント継続時間[0]
  220. p_bend_dly:    ds.w    1    *.w ベンドディレイ値[0]
  221. p_bend_cnt:    ds.w    1    *.w ベンドテイル/ベンドタイム[0]
  222. p_port2_dly:    ds.w    1    *.w オートポルタメントディレイ[0]
  223. p_port2_cnt:    ds.w    1    *.w オートポルタメントテイル/オートポルタメントタイム[0]
  224. p_port_pitch:    ds.l    1    *.l ポルタメント/オートベンド用
  225.                 *   現在のベンド値*65536(Fixed)[0]
  226. p_port_flg:    ds.b    1    *.b ポルタメントオンかオフか
  227.                 *   ([0]=OFF,1=Normal Delay,-1=Minus Delay)
  228. p_port2_flg:    ds.b    1    *.b オートポルタメントスイッチ([0]=OFF,1=ON)
  229. p_bend_sw:    ds.b    1    *.b オートベンドがオンかオフか([0]=OFF,1=ON)
  230.                 *   d7:初めてか(bit=0:初めて)
  231. p_agogik_flg:    ds.b    1    *.b アゴーギクビットワーク[0]
  232.                 *d0 Agogik主導権フラグ([0]=No/1=Yes)
  233.                 *d2 Agogik 小節線発見時にリセットするか
  234.                 *   (1:Yes,[0]:No)
  235.                 *d3 Agogik 波形の値を休符の時も更新
  236.                 *   ([0]:No,1:Yes)
  237.                 *d4 Agogik 波形の値をキーオン毎に更新するモード
  238.                 *   ([0]:OFF,1:ON)
  239.                 *d5 Agogik 休符時に同期するか(1:Yes,[0]:No)
  240.                 *d6 Agogik タイ時に同期するか(1:Yes,[0]:No)
  241.                 *d7 Agogik キーオン毎に同期するか(1:Yes,[0]:No)
  242. p_bend_dst:    ds.w    1    *.w オートベンドのレンジ
  243.                 *   (オートベンドの目的値となる)
  244.         ds.w    1    *
  245. p_port_step:    ds.l    1    *.l ポルタメント用実行ステップ*65536
  246.         ds.l    16
  247. ----------------一般パラメータ-------------------------------------------------
  248. p_measure:    ds.l    1    *.l 現在の小節番号[0]
  249.  
  250. p_voice_rsv:    ds.w    1    *.w FM/ADPCM音源トラックのボイスリザーブ数
  251.                 *   ([0]~7)
  252. p_next_on:    ds.b    1    *.b FM/ADPCM音源トラックの次回の発音チャンネル
  253.                 *   [0]
  254. p_timbre_set:
  255.                 *d7:Bank Selectの設定が行われたか(MIDI)
  256.                 *d6:Programチェンジが行われたか(MIDI)
  257.                 *d5:Volume設定が行われたか(MIDI)
  258.                 *d4:Panpot設定が行われたか(MIDI)
  259.                 *d3:Damper設定が行われたか(MIDI)
  260. p_tone_set:    ds.b    1    *.b 第nビットをチャンネルnとして
  261.                 *   音色を設定したかどうかのフラグ(FM)[0]
  262.  
  263. p_return:    ds.l    1    *.l gosubの次のアドレス[0]
  264.  
  265. p_transpose:    ds.b    1    *.b キートランスポーズ[0]
  266. p_mask_mode:    ds.b    1    *.b Mask Modeかどうか([0]=Normal,1=Masked)
  267. p_damper:    ds.b    1    *.b damper on or off ([0]~63:OFF/64~127:ON)
  268. p_seq_flag:    ds.b    1    *.b []コマンド系の処理フラグビットパターン[0]
  269.                 *d0:[D.C.]処理をしたことがあるか([0]=no/1=yes)
  270.                 *d1:[FINE]処理をすべきかどうか([0]=no/1=yes)
  271.                 *d2:[!]フラグ([0]=OFF/1=実行中)
  272. p_bank_msb:    ds.b    1    *.b MIDI Bank MSB [-1]
  273. p_bank_lsb:    ds.b    1    *.b MIDI Bank LSB [-1]
  274. p_pgm:        ds.w    1    *.w Program Number([0]-32767)
  275.  
  276. p_sync_wk:    ds.b    1    *.b 強制同期コマンド用ワーク[1]
  277. p_@b_range:    ds.b    1    *.b ベンドレンジ[12]
  278. p_vol16:    ds.b    1    *.b 16段階音量(0-16),[-1]=無効(127段階音量モード)
  279. p_velo16:    ds.b    1    *.b 16段階ベロシティ(0-16),[-1]=無効
  280.                 *   (127段階ベロシティモード)
  281. p_do_loop_flag:    ds.b    1    *.b [DO]が以前に設定されているか
  282.                 *   [0]=NO/ループ回数(1~255)
  283. p_md_flg:    ds.b    1    *.b 各種ビットワーク[0]
  284.                 *d0 @B:ベンド値をリセットすべきかどうか
  285.                 *   (MIDI専用 [0]=No/1=Yes)
  286.                 *d1 @M:モジュレーション値をリセットするかしないか
  287.                 *   (MIDI専用 [0]=No/1=Yes)
  288.                 *   ↑(それぞれ関係CTRLに0以外の値を
  289.                 *      出力した時にビットが1になる)
  290.                 *d2 ADPCM Variable Tuning Mode ([0]:NOT)
  291.                 *d3 OPMスロットマスクの切り換え
  292.                 *d4 MIDI Tie Mode([0]:Normal,1:Special)
  293.                 *d5 FM/ADPCMでVoice Reserveを行ったか([0]:No/1:Yes)
  294.                 *d7 音色スプリットモード([0]:OFF,1:ON
  295. p_how_many:    ds.b    1    *.b 今何音キーオンしているか
  296.                 *   ([-1]:None/0~7:1~8)
  297. p_last_note:    ds.b    1    *.b 前回発音したノート番号([-1])
  298. ----------------MIDI専用関係--------------------------------------------------
  299. p_maker:    ds.b    1    *.b メーカーID(MIDI)[-1]
  300. p_device:    ds.b    1    *.b デバイスID(MIDI)[-1]
  301. p_module:    ds.b    1    *.b モジュールID(MIDI)[-1]
  302. p_effect1:    ds.b    1    *.b Effect Parameter 1(GS:RVB)    [-1]
  303. p_effect3:    ds.b    1    *.b Effect Parameter 3(GS:CHO)    [-1]
  304. p_effect4:    ds.b    1    *.b Effect Parameter 4(GS:DLY)    [-1]
  305. p_effect2:    ds.b    1    *.b Effect Parameter 2    [-1]
  306. p_effect5:    ds.b    1    *.b Effect Parameter 5    [-1]
  307. ----------------一般パラメータ-------------------------------------------------
  308. p_timbre_src:    ds.b    1    *.b 音色のコピー元チャンネルオフセット(FM:0-7)
  309. p_sync:        ds.b    1    *.b OPM-LFOのシンクスイッチ(0=off,1=on)
  310. p_om:        ds.b    1    *.b オペレータマスク(&b0000-&b1111)
  311.         ds.b    1
  312.  
  313. p_vol:        ds.b    1    *.b 127段階音量(0-127)    [??]
  314. p_velo:        ds.b    1    *.b ベロシティ(0-[127])
  315. p_frq:        ds.b    1    *.b ADPCMの周波数(0-6)    [4]
  316. p_pan:        ds.b    1    *.b Last PANPOT(0~127,-1=MUTE)[64]
  317.  
  318. p_onoff_bit:    ds.b    1    *キーオン/オフビットワーク
  319.                 *d7:Key ONのときにbit=1が上書きされる
  320.                 *d6:Key OFFのときにbit=1が上書きされる
  321. p_om_bak:    ds.b    1    *.b p_omのバックアップ
  322. p_Q_gate:    ds.w    1    *.w Qコマンドの値(CONVERTER専用)
  323.                 *   (0-256:NORMAL Q,負値:@Q)
  324. p_midi_if:    ds.w    1    *.w ユーザからみたMIDIインターフェース番号(0-3)
  325.  
  326. p_do_loop_ptr:    ds.l    1    *.l [DO]のある位置
  327. p_int_play_ope:    ds.l    1    *.l 演奏処理ルーチンアドレス
  328.                 *   通常はソースZMSC2.HAS中のint_play_ope_fm,
  329.                 *   int_play_ope_ad,int_play_ope_midi
  330. p_midi_trans:    ds.l    1    *.l MIDI送信ルーチン
  331.  
  332. p_total:    ds.l    1    *.l トータルステップタイム
  333. p_total_olp:    ds.l    1    *.l ループ外のトータルステップイム
  334.  
  335. p_split_tbl:    ds.b    48    *.l 音色スプリットの管理ワーク
  336.                 *   音色スプリットの管理ワークは以下の構成を取る
  337.                 *.b 割り当てる開始ノートナンバー
  338.                 *   (0-127,128で残り全部)
  339.                 *.b 割り当てる終端ノートナンバー
  340.                 *   (0-127,128で残り全部)
  341.                 *.w 割り当てるBANK番号
  342.                 *   (MIDI:0-16383/FM,ADPCM:0-255)
  343.                 *.w 割り当てる音色番号
  344.                 *   (MIDI:0-127/FM,ADPCM:0-127 or 0-32767)
  345.                 *以上6バイトが8つ続く
  346. p_lfo_param:            *以下2バイトペアワーク
  347. p_pitch_param:    ds.w    1    *音程関係の特殊処理フラグ
  348. p_level_param:    ds.w    1    *音量関係の特殊処理フラグ
  349. p_key_on:    ds.l (16+1)*2    *これから発音する音の
  350.                 *ノート番号(.b),
  351.                 *ベロシティ(.b),
  352.                 *チャンネルオフセット(.w)
  353.                 *音色番号(.l)
  354.                 *が格納される。
  355.                 *ただしチャンネルオフセットはFM/ADPCMのみで有効、
  356.                 *MIDIでは常に0となる。
  357.                 *例えば p_ch の内容が3のとき
  358.                 *チャンネルオフセットが2の時、実際の発音は
  359.                 *チャンネル5(=3+2)で行われる。p_ch の内容が
  360.                 *3のときチャンネルオフセットが6の時、実際の
  361.                 *発音はチャンネル2=(=(3+6) and 7)で行われる。
  362.         ds.b    64
  363. p_user:        ds.b    1    *.b ユーザー汎用ワーク
  364.  
  365. ・ARCCとエンハンスド・ベロシティ・シーケンスは以下に示したARCCのワーク構成と
  366.   全く同じ構成を取る。なお、ARCC関連のワークは p_arcc_param から、エンハンスド
  367.   ベロシティ・シーケンスは p_vseq_param から開始される。
  368.  p_arcc_paramは、ARCCが1トラックにつき4つ実装されていることから、以下の構成の
  369.  ワークがARCC1からARCC4まで順番に4つ連続して並ぶことになる。
  370.  
  371. ----------------ARCC(AMOD)/ENHANCED VELOCITY SEQUENCE関連----------------------
  372. p_arcc_wf:    ds.w    1    *.w ARCC波形タイプ
  373.                 *  プリセット波形:0~7
  374.                 *   ユーザー波形:$8000+(0-32767))[2]
  375. p_arcc_dpndpt:    ds.b    1    *.b ARCC振幅増減モードの加算量(-128~[0]~127)
  376. p_arcc_dpt_tbl:    ds.b    8    *.b ARCC振幅値テーブル*8 [0]
  377.         ds.b    1
  378. p_arcc_dpnspd:    ds.w    1    *.w ARECC振幅増減モードの振幅値加算周期([0]-32767)
  379. p_arcc_spd_tbl:    ds.w    8    *.w ARCCスピード値テーブル [mod_dflt]
  380. p_arcc_dpt_now:    ds.b    1    *.b ARCC現在の実行振幅値[0]
  381. p_arcc_flg2:    ds.b    1    *.b ARCC動作フラグ2
  382.                 *d0 ARCC波形位相([0]:Normal,[1]:Reverse)
  383.                 *d7 ARCC波形接続可能か([0]:No,1:Yes)
  384. p_arcc_mode:    ds.b    1    *.b MIDI ARCCモード([-1]:通常,0~127:拡張)
  385. p_arcc_omt:    ds.b    1    *.b 1/8 MODE,OPTIONAL MODEの省略ビットパターン[$01]
  386. p_arcc_1st_dly:    ds.w    1    *.w ARCC初期ディレイ [0]
  387. p_arcc_8st_tbl:    ds.w    8    *.w ARCCの振幅変化ディレイ
  388. p_arcc_stp_tbl:    ds.w    8    *.w ARCC加算ステップ値テーブル
  389.                 *   (波形タイプ=矩形波,ノイズ,波形メモリでは
  390.                 *    振幅値が格納される)
  391. p_arcc_step2:    ds.w    1    *.w ARCC実行ステップ
  392. p_arcc_spd:    ds.w    1    *.w ARCCスピード
  393. p_arcc_spd2:    ds.w    1    *.w ARCCピードワーク
  394. p_arcc_dly2:    ds.w    1    *.w ARCCディレイワーク
  395. p_arcc_level:    ds.w    1    *.w ARCCポイントワーク
  396. p_arcc_o:    ds.w    1    *.w ARCC波形スタート値(ノコギリ波,三角波専用)
  397. p_arcc_sw:    ds.b    1    *.b ARCCスイッチ
  398.                 *   ([0]=OFF,$ff=1/8 MODE ON,$01=OPTIONAL MODE ON)
  399. p_arcc_sw2:    ds.b    1    *.b ARCCスイッチ保存
  400.                 *   ([0]=OFF,$ff=1/8 MODE ON,$01=OPTIONAL MODE ON)
  401. p_arcc_chain:    ds.b    1    *.b ARCCの接続フラグ
  402.                 *   (-1:波形接続完了,0:即接続可能,1:接続待機中,[2]:初回))
  403. p_arcc_flg:    ds.b    1    *.b ARCC動作フラグワーク
  404.                 *d0 ARCC初めてか違うか([0]:はじめて,1:違う)
  405.                 *d1 ARCC振幅を増加減衰させるモード([0]:OFF,1:ON)
  406.                 *d2 ARCCのリセット要請([0]:No [1]:Yes)
  407.                 *d3 ARCC波形の値を休符の時も更新([0]:No,1:Yes)
  408.                 *d4 ARCC波形の値をキーオン毎に更新するモード
  409.                 *   ([0]:OFF,1:ON)
  410.                 *d5 ARCC 休符時に同期するか(1:Yes,[0]:No)
  411.                 *d6 ARCC タイ時に同期するか(1:Yes,[0]:No)
  412.                 *d7 ARCC キーオン毎に同期するか([1]:Yes,0:No)
  413.                 *(ベロシティシーケンスのときのd6は以下のように扱われる。
  414.                 *d6 VSEQ VELOCITYを与えられてる時も進行させるか([0]:no,1:yes)
  415. p_arcc_last:    ds.b    1    *.b 前回出力したARCC値(MIDI)[-1]
  416. p_arcc_reset:    ds.b    1    *.b ARCCのリセット値([0])
  417. p_arcc_origin:    ds.b    1    *.b ARCC基準値([127])
  418. p_arcc:        ds.b    1    *.b ARCCのコントロールナンバー([11]=Expression)
  419. p_arcc_o_next:    ds.w    1    *.w 次にくる予定の波形開始点
  420. p_arcc_step_next: ds.w    1    *.w 次にくる予定のステップ
  421. p_arcc_spd_next:  ds.w    1    *.w 次にくる予定のスピード
  422. p_wvam_start:    ds.l    1    *.l 波形メモリ開始アドレス
  423. p_wvam_point:    ds.l    1    *.l 波形メモリ現在のポインタ
  424. p_wvam_end:    ds.l    1    *.l 波形メモリ終了アドレス
  425.         ds.b    1
  426. p_wvam_lpmd:    ds.b    1    *.b 波形メモリループモード
  427. p_wvam_lpst:    ds.l    1    *.l 波形メモリループ開始アドレス
  428. p_wvam_lped:    ds.l    1    *.l 波形メモリループ終了アドレス
  429. p_wvam_lptm:    ds.l    1    *.l 波形メモリループ回数(0=∞)
  430. p_wvam_lptm2:    ds.l    1    *.l 波形メモリループ回数実行ワーク(0=∞)
  431. p_alta_flg:    ds.b    1    *.b 波形メモリ反復モードフラグ
  432. p_arcc_n:    ds.b    1    *.b ARCCテーブルポインタ(-1,0~7)
  433. p_arcc_wf2:    ds.w    1    *.w 次にくる予定の波形タイプ[2]
  434. p_arcc_dpnrpt:    ds.w    1    *.w 振幅増減処理を何回行うか
  435.                 *   (0~32767,[0]:∞)
  436. p_arcc_rndcnt:    ds.w    1    *.w 波形が何周したか(0-32767)
  437. p_arcc_dpntime:    ds.w    1    *.w 増減処理を何回行ったか(0-65535)
  438. p_arcc_syncnt:    ds.w    1    *.w 同期カウント    ([1]~65535)
  439. p_arcc_syncnt2:    ds.w    1    *.w 同期カウント実行ワーク([1]~65535)
  440.         ds.l    16
  441.  
  442. 13.2.  バッファアドレステーブル
  443.  
  444.  
  445.   ファンクション ZM_GET_BUFFER_INFORMATION(MEASURE10参照)でZMUSIC Ver.3.0の
  446.  
  447. 各バッファのアドレスを知ることができる。
  448.  
  449.   ここでは、これらのバッファの構造や役割についての解説をする。
  450.  
  451.   自作プログラムからZMUSIC Ver.3.0のバッファアドレステーブルを参照する場合は
  452.  
  453. 以下に示すワーク名をラベル定義化した COMMON.MAC をインクルードするとよい。
  454. ------------------------------------------------------------------------------
  455. trk_buffer_top:        ds.l    1    *トラックバッファ先頭アドレス
  456. trk_buffer_size:    ds.l    1    *トラックバッファサイズ
  457. trk_buffer_end:        ds.l    1    *トラックバッファ最終アドレス
  458. adpcm_buffer_top:    ds.l    1    *(AD)PCMバッファ先頭アドレス
  459. adpcm_buffer_size:    ds.l    1    *(AD)PCMバッファサイズ
  460. adpcm_buffer_end:    ds.l    1    *(AD)PCMバッファ最終アドレス
  461. wave_memory_top:    ds.l    1    *波形メモリバッファ先頭アドレス
  462. wave_memory_size:    ds.l    1    *波形メモリバッファサイズ
  463. wave_memory_end:    ds.l    1    *波形メモリバッファ最終アドレス
  464. seq_wk_tbl:        ds.l    1    *音楽演奏トラックワーク先頭アドレス
  465. seq_wk_tbl_se:        ds.l    1    *効果音演奏トラックワーク先頭アドレス
  466. play_trk_tbl:        ds.l    1    *どのトラックを演奏するのかを表すテーブル
  467. play_trk_tbl_se:    ds.l    1    *どのトラックを演奏するのかを表すテーブル(効果音)
  468. adpcm_tbl:        ds.l    1    *(AD)PCMトーンのアドレステーブル[0]
  469. adpcm_n_max:        ds.w    1    *定義できる最大トーン数[0]
  470. adpcm_tbl2:        ds.l    1    *(AD)PCM音色のアドレステーブル[0]
  471. adpcm_n_max2:        ds.w    1    *定義できる最大音色数[0]
  472. wave_tbl:        ds.l    1    *波形メモリデータのテーブルアドレス
  473. wave_n_max:        ds.w    1    *波形メモリの定義最大個数
  474. fmsnd_buffer:        ds.l    1    *FM音色バッファ
  475. fmsnd_n_max:        ds.w    1    *FM音色バッファの定義最大個数
  476. lyric_address:        ds.l    1    *歌詞文字列データアドレス
  477. lyric_size:        ds.l    1    *歌詞文字列データサイズ
  478.                     *(文字列は0で終わらない場合有り)
  479. trk_po_tbl:        ds.l    1    *各トラックの先頭アドレス格納テーブルアドレス
  480. trk_po_tbl_se:        ds.l    1    *各トラックの先頭アドレス格納テーブルアドレス
  481. trk_n_max:        ds.w    1    *トラックの個数
  482. pattern_trk:        ds.l    1    *パターントラックアドレス[0]
  483. pattern_trk_se:        ds.l    1    *パターントラックアドレス効果音[0]
  484. m_buffer_0:        ds.l    1    *CZ6BM1-0用の送信バッファ
  485. m_buffer_1:        ds.l    1    *CZ6BM1-1用の送信バッファ
  486. m_buffer_r:        ds.l    1    *RS232C-MIDI用の送信バッファ
  487.             ds.l    1    *RESERVED
  488.             ds.l    1    *RESERVED
  489.             ds.l    1    *RESERVED
  490.             ds.l    1    *RESERVED
  491.             ds.l    1    *RESERVED
  492. rec_buffer_0:        ds.l    1    *CZ6BM1-0用の受信バッファ
  493. rec_buffer_1:        ds.l    1    *CZ6BM1-1用の受信バッファ
  494. rec_buffer_r:        ds.l    1    *RS232C-MIDI用の受信バッファ
  495.             ds.l    1    *RESERVED
  496.             ds.l    1    *RESERVED
  497.             ds.l    1    *RESERVED
  498.             ds.l    1    *RESERVED
  499.             ds.l    1    *RESERVED
  500. mm0_adr:        ds.l    1    *CZ6BM1-0用のチャンネルワーク
  501. mm1_adr:        ds.l    1    *CZ6BM1-1用のチャンネルワーク
  502. mmr0_adr:        ds.l    1    *RS232C-MIDI A用のチャンネルワーク
  503. mmr1_adr:        ds.l    1    *RS232C-MIDI B用のチャンネルワーク
  504.             ds.l    1    *RESERVED
  505.             ds.l    1    *RESERVED
  506.             ds.l    1    *RESERVED
  507.             ds.l    1    *RESERVED
  508. n_of_err:        ds.l    1    *発生しているエラーの数
  509. err_stock_next:        ds.l    1    *次のエラー格納アドレス
  510. err_stock_addr:        ds.l    1    *エラーストックバッファ先頭アドレス
  511. err_stock_size:        ds.l    1    *エラーストックバッファサイズ
  512. ------------------------------------------------------------------------------
  513.  
  514. ●トラックバッファ
  515.  
  516.   トラックバッファはZMDを格納するために確保されている。
  517.  
  518.   外部アプリケーションで確保したメモリ領域をZMUSIC Ver.3.0から参照させるには
  519.  
  520.     (trk_buffer_top)=メモリ領域の先頭アドレス
  521.     (trk_buffer_size)=メモリ領域のサイズ
  522.     (trk_buffer_end)=メモリ領域の最終アドレス
  523.  
  524. を設定する。
  525.  
  526.  
  527. ●演奏トラックワーク
  528.  
  529.   演奏中の演奏データの各トラックのワーク。ZMUSIC Ver.3.0はVer.2.0とは異なり
  530.  
  531. 演奏に使用されているトラック数しか演奏トラックワークは存在しない。
  532.  
  533. 1本のトラックにつき、ZMUSIC Ver.3.0のソースリストLABEL.MAC中に定義されている
  534.  
  535. trwk_sizeの数だけ(Ver.3.0時点で2048)バイトのワークが割り当てられている。
  536.  
  537. 各ワークの役割と構成については13.1.を参照のこと。
  538.  
  539.     (seq_wk_tbl)+トラック番号(0~)×trwk_size
  540.  
  541. で任意のトラックのワーク先頭アドレスを求めることができる。
  542.  
  543.  
  544. ●効果音トラックワーク
  545.  
  546.   効果音の演奏トラックワーク。トラック数はZMSC3.X組み込み時の-Fスイッチで
  547.  
  548. 指定された数だけ存在する。役割と構成、ワークサイズはまったく演奏トラック
  549.  
  550. ワークと同等。
  551.  
  552.  
  553. ●(AD)PCMバッファ
  554.  
  555.   (AD)PCMバッファにはZPDなどの(AD)PCMデータが格納される。
  556.  
  557.   外部アプリケーションで確保したメモリ領域をZMUSIC Ver.3.0から参照させるには
  558.  
  559.     (adpcm_buffer_top)=メモリ領域の先頭アドレス
  560.     (adpcm_buffer_size)=メモリ領域のサイズ
  561.     (adpcm_buffer_end)=メモリ領域の最終アドレス
  562.  
  563. を設定する。
  564.  
  565.  
  566. ●(AD)PCM管理テーブル
  567.  
  568.   adpcm_tblは音色番号1~256,ノート番号0~127に割り当てられた(AD)PCMトーンを
  569.  
  570. 管理するワーク。
  571.  
  572.   adpcm_tbl2はバンク0~255,音色番号1~128に割り当てられた(AD)PCM音色を管理する
  573.  
  574. ワーク。
  575.  
  576.   音色番号1のノート番号0からノート番号127まで順番に以下の構成が繰り返す。
  577.  
  578. 音色番号1のノート番号127の次は音色番号のノート番号0からノート番号127までが
  579.  
  580. 続く。以下バンク127,127までこれを繰り返されている。
  581.  
  582.  ただし、実際に(AD)PCMが格納されているノート番号を含むバンクまでしか領域は
  583.  
  584. 保証されない。
  585.  
  586.   (AD)PCM音色についても、バンク0,0の音色番号1~128からバンク127,127の音色番号
  587.  
  588. 1~128までが同様の構成を取る。
  589. ------------------------------------------------------------------------------
  590. adt_type:        ds.b    1    *データタイプ:0=empty,-1=adpcm,1=16bitPCM
  591. adt_orig_key:        ds.b    1    *オリジナルキー:0-127
  592.             ds.b    1    *Reserved
  593.             ds.b    1    *Reserved
  594. adt_addr:        ds.l    1    *データアドレス
  595. adt_size:        ds.l    1    *サイズ
  596. adt_loop_start:        ds.l    1    *ループ開始ポイント
  597. adt_loop_end:        ds.l    1    *ループ終端ポイント
  598. adt_loop_time:        ds.l    1    *ループ回数
  599.             ds.b    8    *Reserved
  600. adt_name:        ds.b    32    *コメント
  601. ------------------------------------------------------------------------------
  602.   1つの(AD)PCMデータに対して割り当てられるワークサイズが64バイトであることから
  603.  
  604. 任意の音色番号b(1~256)、ノート番号n(0~127)に対応する(AD)PCMトーンの管理ワーク
  605.  
  606. アドレスは
  607.  
  608.     (adpcm_tbl)+(b-1)×128×64+n×64
  609.  
  610. で求めることができる。同様に任意のバンク番号b(0~255)、音色番号tの(AD)PCM音色の
  611.  
  612. 管理ワークアドレスは
  613.  
  614.     (adpcm_tbl2)+b×128×64+t×64
  615.  
  616. で求めることができる。
  617.  
  618.   自作プログラムから上記のオフセットテーブルを利用して(AD)PCM管理テーブルを
  619.  
  620. 参照する場合はソースリストに含まれる TABLE.MAC をインクルードするとよい。
  621.  
  622.  
  623. ●波形メモリ管理テーブル
  624.  
  625.   wave_tblは波形番号8~255に割り当てられた波形メモリデータ列を管理するワーク。
  626.  
  627. 1つの波形につき以下のようなワーク構成を取っている。これが、連続して
  628.  
  629. 波形番号8から波形番号255まで続く。
  630. ------------------------------------------------------------------------------
  631. wave_start_addr:    ds.l    1    *波形の開始アドレス(.l)
  632. wave_end_addr:        ds.l    1    *波形の最終アドレス+2(.l)
  633.             ds.b    1    *リザーブ
  634. wave_loop_type:        ds.b    1    *ループタイプ(.w)
  635. wave_loop_start:    ds.l    1    *ループ開始アドレス(.l)
  636. wave_loop_end:        ds.l    1    *ループ最終アドレス+2(.l)
  637. wave_loop_time:        ds.l    1    *ループ回数
  638.             ds.l    1    *リザーブ
  639.             ds.b    1    *リザーブ
  640. wave_name_len:        ds.b    1    *波形名称文字列長(.w)
  641. wave_name_addr:        ds.l    1    *波形名称文字列格納アドレス(.l)
  642. ------------------------------------------------------------------------------
  643.  なお、波形のアドレス等は全て絶対番地で表されている。ループタイプ値は0~2で
  644.  
  645. 与えたものが -1,0,+1 にシフトされている点に注意。
  646.  
  647.   1つの波形に対して割り当てられるワークサイズは64バイトであることから任意の
  648.  
  649. 波形番号w(8~255)に対応したワークアドレスは
  650.  
  651.     (wave_tbl)+(w-8)×64
  652.  
  653. にて求めることができる。
  654.  
  655.   自作プログラムから上記のオフセットテーブルを利用して波形メモリ管理テーブルを
  656.  
  657. 参照する場合はソースリストに含まれる TABLE.MAC をインクルードするとよい。
  658.  
  659.  
  660. ●FM音源音色バッファ
  661.  
  662.   fmsnd_bufferはFM音源音色を格納するバッファで、音色データが以下に示すような
  663.  
  664. フォーマットで格納されている。バンク0の音色番号1からバンク255の音色番号128
  665.  
  666. (または音色番号1から32768)までが順番に続く。ただし、fmsnd_n_maxの値で表される
  667.  
  668. 音色番号の分までしかバッファは確保されていない。
  669. ------------------------------------------------------------------------------
  670. fm_flag:    ds.w    1    *音色有効フラグ
  671. fm_LFRQ:    ds.b    1    *LFRQ
  672. fm_PMD:        ds.b    1    *PMD
  673. fm_AMD:        ds.b    1    *AMD
  674. fm_SYNC_OM_WF:    ds.b    1    *d0-d1:WF,d3-d6:OM,d7:SYNC
  675. fm_PAN_AF:    ds.b    1    *d0-d5:AF,d6-d7:PAN
  676. fm_PMS_AMS:    ds.b    1    *d0-d1:AMS,d4-d6:PMS
  677. fm_OP1_DT1_MUL:    ds.b    1    *OP1 d0-d3:MUL,d4-d7:DT1
  678. fm_OP3_DT1_MUL:    ds.b    1    *OP3 d0-d3:MUL,d4-d7:DT1
  679. fm_OP2_DT1_MUL:    ds.b    1    *OP2 d0-d3:MUL,d4-d7:DT1
  680. fm_OP4_DT1_MUL:    ds.b    1    *OP4 d0-d3:MUL,d4-d7:DT1
  681. fm_OP1_TL:    ds.b    1    *OP1 TL
  682. fm_OP3_TL:    ds.b    1    *OP3 TL
  683. fm_OP2_TL:    ds.b    1    *OP2 TL
  684. fm_OP4_TL:    ds.b    1    *OP4 TL
  685. fm_OP1_KS_AR:    ds.b    1    *OP1 d0-d4:AR,d6-d7:KS
  686. fm_OP3_KS_AR:    ds.b    1    *OP3 d0-d4:AR,d6-d7:KS
  687. fm_OP2_KS_AR:    ds.b    1    *OP2 d0-d4:AR,d6-d7:KS
  688. fm_OP4_KS_AR:    ds.b    1    *OP4 d0-d4:AR,d6-d7:KS
  689. fm_OP1_AME_1DR:    ds.b    1    *OP1 d0-d4:D1R,d7:AMS-EN
  690. fm_OP3_AME_1DR:    ds.b    1    *OP3 d0-d4:D1R,d7:AMS-EN
  691. fm_OP2_AME_1DR:    ds.b    1    *OP2 d0-d4:D1R,d7:AMS-EN
  692. fm_OP4_AME_1DR:    ds.b    1    *OP4 d0-d4:D1R,d7:AMS-EN
  693. fm_OP1_DT2_2DR:    ds.b    1    *OP1 d0-d4:D2R,d6-d7:DT2
  694. fm_OP3_DT2_2DR:    ds.b    1    *OP3 d0-d4:D2R,d6-d7:DT2
  695. fm_OP2_DT2_2DR:    ds.b    1    *OP2 d0-d4:D2R,d6-d7:DT2
  696. fm_OP4_DT2_2DR:    ds.b    1    *OP4 d0-d4:D2R,d6-d7:DT2
  697. fm_OP1_D1L_RR:    ds.b    1    *OP1 d0-d3:RR,d4-d7:D1L
  698. fm_OP3_D1L_RR:    ds.b    1    *OP3 d0-d3:RR,d4-d7:D1L
  699. fm_OP2_D1L_RR:    ds.b    1    *OP2 d0-d3:RR,d4-d7:D1L
  700. fm_OP4_D1L_RR:    ds.b    1    *OP4 d0-d3:RR,d4-d7:D1L
  701. fm_NAME:    ds.b    1    *音色名文字列(最大16文字)
  702. ------------------------------------------------------------------------------
  703.  1音色につき48バイトをとるので任意のバンク番号b(0-255)、音色番号t(1-128)
  704.  
  705. の音色データのアドレスは
  706.  
  707.     (fmsnd_buffer)+b×128×48+(t-1)*48
  708.  
  709. で求められる(バンク番号を用いないでしていする場合は上の式中の「b×128×48」を
  710.  
  711. 取って考える)。
  712.  
  713.   自作プログラムから上記のオフセットテーブルを利用してFM音源音色バッファを
  714.  
  715. 参照する場合はソースリストに含まれる TABLE.MAC をインクルードするとよい。
  716.  
  717.  
  718. ●各トラックの先頭アドレス
  719.  
  720.   各トラックの先頭アドレスはtrk_po_tblに格納されているアドレスから
  721.  
  722. トラック1の先頭アドレス(.L)
  723. トラック2の先頭アドレス(.L)
  724. トラック3の先頭アドレス(.L)
  725.     :
  726.     :
  727.  
  728. のように格納されている。(効果音トラックの場合はtrk_po_tbl_se)
  729.  
  730.   よって、任意のトラック番号tのトラックの先頭アドレスは
  731.  
  732.     (trk_po_tbl)+t×4
  733.  
  734. で求めることができる。
  735.  
  736.  
  737. ●演奏に使用されるトラック
  738.  
  739.  実際の演奏に使用されているトラック番号は、play_trk_tblに格納されている
  740.  
  741. アドレスから、$ffff(.w)Endcodeとし、ワードサイズで列記されている。例えば
  742.  
  743. トラック番号1~8が演奏されているとするとplay_trk_tblに格納されているアドレスから
  744.  
  745.     $0000 $0001 $0002 $0003 $0004 $0005 $0006 $0007 $ffff
  746.  
  747. のような値が格納されている。トラック番号1~8が0~7になっている点に注意。
  748.  
  749.  
  750. 13.3. ZMUSICの状態ワーク
  751.  
  752.  
  753.   ファンクション ZM_GET_ZMSC_STATUS(MEASURE10参照)でZMUSIC Ver.3.0の
  754.  
  755. 状態ワーク(ステータスワーク)のアドレスを知ることができる。状態ワークは
  756.  
  757. その時点に置けるZMUSICの状態を表したワークエリアで、フェーダー関連の
  758.  
  759. パラメータやカレントMIDI、テンポ等のグローバルパラメータなどもここに
  760.  
  761. 配置されている。
  762.  
  763.   ここでは、これらのワークの構造や役割についての解説をする。
  764.  
  765.   自作プログラムからZMUSIC Ver.3.0の状態ワークを参照する場合は以下に示す
  766.  
  767. 状態ワーク名をラベル定義化した ZM_STAT.MAC をインクルードするとよい。
  768. ------------------------------------------------------------------------------
  769. midi_board:        dc.b    0    *MIDI I/F有効フラグ
  770.                     *d0~d3がそれぞれCZ6BM1 #1,#2,RS232C-MIDI A,Bに対応
  771. available_device:    dc.b    0    *実際に使用するデバイスフラグ(midi_boardと同じ書式)
  772. timer_flg:        dc.b    0    *TIMER ON/OFF(d0:TIMER A,d1:TIMER B,d2:YM3802 TIMER)
  773.                     *(d7はFUNC INTERCEPT_PLAYが有効時にm_playが実行されると
  774.                     *1に上書きされる。外部アプリ向け専用ワークビット)
  775.             dc.b    0
  776. wk_size:    dc.w    trwk_size    *1トラックワークのサイズ
  777. play_start_time:    dc.l    -1    *演奏開始時刻 (10時23分52秒ならば$00102352,初期値=-1)
  778. play_stop_time:        dc.l    -1    *演奏停止時刻 (10時23分52秒ならば$00102352,初期値=-1)
  779. play_cont_time:        dc.l    -1    *演奏再開時刻 (10時23分52秒ならば$00102352,初期値=-1)
  780. dev_end_adr:        ds.l    1    *ZMSC3.X最終アドレス
  781. t_min:            dc.w    10    *音楽演奏用テンポの最小値    (デフォルト値はMIDI
  782. t_max:            dc.w    32767    *音楽演奏用テンポの最大値    14bitタイマが
  783. t_min_se:        dc.w    20    *効果音演奏用テンポの最小値    採択された時の場合)
  784. t_max_se:        dc.w    5000    *効果音演奏用テンポの最大値
  785. _@t_max:        dc.w    $3fff    *音楽演奏用タイマ値の最大値
  786. _@t_max_se:        dc.w    $ff    *効果音演奏用タイマ値の最大値
  787. mask_opm_ch:        dc.w    0    *FM音源のマスクチャンネル対応ビット
  788.                     *d0~d7がチャンネル1~8に対応。対応ビット=1:Masked
  789. se_tr_max:        dc.w    0    *効果音の最大トラック数[0]
  790. ext_pcmdrv:        dc.b    0    *外部PCMドライバ([0]:NO 1:組み込まれている)
  791. current_rs232c_part:    dc.b    1    *RS232Cの現在の選択パート
  792.                     *0:PART A,$FF:PART B,[1]:未定義
  793. current_midi_in_r:    dc.w    -1    *カレント相対I/F番号(USERから見た0-3)
  794. current_midi_in_w:    dc.b    -1    *通常は常時0
  795. current_midi_in_b:    dc.b    -1    *カレント絶対I/F番号(内部で使用する(0-3)*2)
  796. current_midi_out_r:    dc.w    -1    *カレント相対I/F番号(USERから見た0-3)
  797. current_midi_out_w:    dc.b    -1    *通常は常時0
  798. current_midi_out_b:    dc.b    -1    *カレント絶対I/F番号(内部で使用する(0-3)*2)
  799. midi_if_tbl:        dcb.b    8+1,-1    *MIDIインターフェースの使用設定
  800.                     *(0:CZ6BM1-1,2:CZ6BM1-2,4:RS232C-A,6:RS232C-B,-1:なし)
  801. ch_wk_mode:        dc.b    -1    *チャンネルワークの使用状態
  802.                     *-1=全部(DEFAULT),0=FM無し(通常禁止)
  803.                     *1=MIDI無し,2=全部無し(通常禁止)
  804. gs_id:        dc.b    $10,$10,$10,$10    *DEVICE IDデフォルト値
  805.         ds.b    4        *Reserved
  806. sc88_id:    dc.b    $10,$10,$10,$10
  807.         ds.b    4        *Reserved
  808. mt32_id:    dc.b    $10,$10,$10,$10    *
  809.         ds.b    4        *Reserved
  810. u220_id:    dc.b    $10,$10,$10,$10    *
  811.         ds.b    4        *Reserved
  812. m1_id:        dc.b    $30,$30,$30,$30    *
  813.         ds.b    4        *Reserved
  814. adpcm_frq:    dc.b    0        *ADPCM周波数
  815. adpcm_pan:    dc.b    0        *ADPCMパンポット
  816. adpb_clr:    dc.b    0        *ADPCMバッファ初期化有無フラグ(0以外=要初期化)
  817. wvmm_clr:    dc.b    0        *波形メモリバッファ初期化有無フラグ(0以外=要初期化)
  818.  
  819. meter:        dc.w    $0404        *拍子
  820. metronome:    dc.b    0        *Reserved
  821.         dc.b    0        *Reserved
  822. key:        dc.w    0        *調号
  823. mst_clk:    dc.w    192        *全音符の絶対音長カウント
  824. tempo_value:    dc.w    120        *テンポ値(DEFAULT=120)
  825. timer_value:    dc.w    0        *タイマの値
  826.  
  827. meter_se:    dc.w    $0404        *拍子(効果音サイド)
  828. metronome_se:    dc.b    0        *Reserved
  829.         dc.b    0        *Reserved
  830. key_se:        dc.w    0        *調号
  831. mst_clk_se:    dc.w    192        *全音符の絶対音長カウント(効果音サイド)
  832. tempo_value_se    dc.w    120        *テンポ値(DEFAULT=120)
  833. timer_value_se:    dc.w    0        *タイマの値
  834. eox_w:        dcb.w    8,3        *EOXウェイト(DEFAULT=3)
  835. se_mode:    dc.b    0        *ADPCMの効果音モードか(0=NO,0以外=YES)
  836. fader_flag:    dc.b    0        *現在実行中のフェーダー
  837.                     *(d7:マスターフェーダー,d6:チャンネルフェーダー)
  838.                     *実行中のフェーダーに対応したビット=1で
  839.                     *そのフェーダーが可動中
  840. fnc_no:        dc.w    $7fff        *最後に実行した(あるいは現在実行中の)ファンクション番号
  841. sr_type:    dc.w    $2500        *SRをマスクする際のデフォルト値(普通は書き変わる)
  842. sp_buf:        dc.l    0        *ファンクション実行時のスタック保存ワーク
  843. fnc_quit_addr:    dc.l    0        *緊急帰還アドレス(エラーが発生した場合の脱出アドレス)
  844. opmset_bsr_ms:    dc.l    opmset        *FM音源アクセス ルーチン アドレス(効果音モード時opmset_se)
  845. timer_mode:    dc.b    0        *どのタイマーを使うか
  846.                     *タイマA:-1,タイマB:0,YM3802タイマ:1
  847. synchro_mode:    dc.b    0        *外部同期モードか(0=NO,$FF=YES)
  848. polypress_mode:    dc.b    -1        *ポリフォニックプレッシャーモード([-1]:ON,0=NO)
  849. no_init_mode:    dc.b    0        *初期化無しモードか([0]=NO,0以外=YES)
  850. zmusic_int:    dc.l    0        *ZMUSICが割り込むとインクリメントされる
  851. last_zmusic_int:    dc.l    0    *前回MIDI_INP1を実行したときのzmusic_intの値
  852. zpd_last_fn:    ds.b    54        *前回読み込んだファイルの名前
  853. header_buffer:    ds.b    8        *ファイルID用バッファ
  854. fm_tune_tbl:    dc.l    0        *FM音源周波数調整テーブル
  855. pcm_tune_tbl:    dc.l    0        *PCM音源周波数調整テーブル
  856. occupy_flag:    dc.b    0        *占有状態(0=FREE,1=占有されている)
  857. cmd_or_dev:    dc.b    0        *-1=コマンドライン,0=DEVICE
  858. errmes_lang:    dc.b    0        *メッセージ表示言語([0]:English,1:Japanese)
  859. external_applications:    dc.b    0    *外部アプリの常駐状況
  860.                     *d7:ZP -d,d6:ZP -j
  861.                     *対応ビット=1の時そのアプリケーションが
  862.                     *組み込まれている
  863. smf_end_flag:    dc.b    0        *SMF 転送終了フラグ
  864. rs232c_mode:    dc.b    0        *RS232C-MIDIのモード
  865.                     *d7=(0:通常,1:デュアル)
  866.                     *d0-d3:ボーレート時定数[3]
  867. perform_flg:    dc.b    0        *ZM_PLAY,ZM_CONT,ZM_STOPのファンクションが
  868.                     *実行されるたびに対応ビットが1に上書きされる。
  869.                     *d0:PLAY d1:CONT d2:STOP
  870.                     *d7:loop mode(0:normal 1:no loop/FUNC $59参照)
  871. v2_compatch:    dc.b    0        *V2コンパチモードか[0]:NO 1:YES
  872.         .even
  873. fm_vol_tbl:    ds.b    16        *フェードアウト/イン用の音量ワーク
  874. ad_vol_tbl:    ds.b    16
  875. m0_vol_tbl:    ds.b    16
  876. m1_vol_tbl:    ds.b    16
  877. mr0_vol_tbl:    ds.b    16
  878. mr1_vol_tbl:    ds.b    16
  879.  
  880. *以下spd,spd2,lvlw,lvlb系のワークの配置はzmsc2.hasの都合に合わせてある
  881.                     *マスターフェーダーパラメータ群
  882. mstfd_fm_spd2:    ds.w    1        *スピード実行ワーク(.w)
  883. mstfd_fm_spd:    ds.w    1        *スピード値(.w)
  884. mstfd_fm_lvlw:    ds.b    1        *フェーダーレベル(.w)
  885. mstfd_fm_lvlb:    ds.b    1        *フェーダーレベル(.b)
  886. mstfd_fm_dest:    ds.b    1        *目的値(.b)
  887. mstfd_fm_mode:    ds.b    1        *フェーダーモード(.b)
  888.  
  889. mstfd_ad_spd2:    ds.w    1        *スピード実行ワーク(.w)
  890. mstfd_ad_spd:    ds.w    1        *スピード値(.w)
  891. mstfd_ad_lvlw:    ds.b    1        *フェーダーレベル(.w)
  892. mstfd_ad_lvlb:    ds.b    1        *フェーダーレベル(.b)
  893. mstfd_ad_dest:    ds.b    1        *目的値(.b)
  894. mstfd_ad_mode:    ds.b    1        *フェーダーモード(.b)
  895.  
  896. mstfd_m0_spd2:    ds.w    1        *スピード実行ワーク(.w)
  897. mstfd_m0_spd:    ds.w    1        *スピード値(.w)
  898. mstfd_m0_lvlw:    ds.b    1        *フェーダーレベル(.w)
  899. mstfd_m0_lvlb:    ds.b    1        *フェーダーレベル(.b)
  900. mstfd_m0_dest:    ds.b    1        *目的値(.b)
  901. mstfd_m0_mode:    ds.b    1        *フェーダーモード(.b)
  902.  
  903. mstfd_m1_spd2:    ds.w    1        *スピード実行ワーク(.w)
  904. mstfd_m1_spd:    ds.w    1        *スピード値(.w)
  905. mstfd_m1_lvlw:    ds.b    1        *フェーダーレベル(.w)
  906. mstfd_m1_lvlb:    ds.b    1        *フェーダーレベル(.b)
  907. mstfd_m1_dest:    ds.b    1        *目的値(.b)
  908. mstfd_m1_mode:    ds.b    1        *フェーダーモード(.b)
  909.  
  910. mstfd_mr0_spd2:    ds.w    1        *スピード実行ワーク(.w)
  911. mstfd_mr0_spd:    ds.w    1        *スピード値(.w)
  912. mstfd_mr0_lvlw:    ds.b    1        *フェーダーレベル(.w)
  913. mstfd_mr0_lvlb:    ds.b    1        *フェーダーレベル(.b)
  914. mstfd_mr0_dest:    ds.b    1        *目的値(.b)
  915. mstfd_mr0_mode:    ds.b    1        *フェーダーモード(.b)
  916.  
  917. mstfd_mr1_spd2:    ds.w    1        *スピード実行ワーク(.w)
  918. mstfd_mr1_spd:    ds.w    1        *スピード値(.w)
  919. mstfd_mr1_lvlw:    ds.b    1        *フェーダーレベル(.w)
  920. mstfd_mr1_lvlb:    ds.b    1        *フェーダーレベル(.b)
  921. mstfd_mr1_dest:    ds.b    1        *目的値(.b)
  922. mstfd_mr1_mode:    ds.b    1        *フェーダーモード(.b)
  923.  
  924. ch_fm_fdp:    ds.b    fd_wkl*16    *チャンネルフェーダーパラメータ群
  925. ch_ad_fdp:    ds.b    fd_wkl*16    *(1ch:8byte構成*16ch分)
  926. ch_m0_fdp:    ds.b    fd_wkl*16
  927. ch_m1_fdp:    ds.b    fd_wkl*16
  928. ch_mr0_fdp:    ds.b    fd_wkl*16
  929. ch_mr1_fdp:    ds.b    fd_wkl*16
  930.  
  931. ch_fader_tbl:    ds.w    96    *チャンネルフェーダー
  932.                 *(フェード処理するチャンネル番号0-95が並ぶ)
  933.         dc.w    -1    *End code
  934. master_fader_tbl:        *マスターフェーダー
  935.                 *(フェード処理するデバイス番号*fd_wklが並ぶ)
  936.         ds.w    6    *0,8,16,24,32,40 
  937.         dc.w    -1    *End code
  938.  
  939. ch_mask_fm:    dc.w    0        *チャンネルフェーダービットワーク
  940. ch_mask_ad:    dc.w    0
  941. ch_mask_m0:    dc.w    0
  942. ch_mask_m1:    dc.w    0
  943. ch_mask_mr0:    dc.w    0
  944. ch_mask_mr1:    dc.w    0
  945.         .even
  946. agogik_work:        ds.b    __pmod_len    *音楽演奏用アゴーギクワーク
  947. agogik_work_se:        ds.b    __pmod_len    *効果音演奏用アゴーギクワーク
  948.         .even
  949. mpcm_vol_tbl:                    *MPCM用音量テーブル64=原音レベル
  950.     dc.w       0,   3,   6,   9,  12,  15,  18,  21
  951.     dc.w      24,  25,  26,  27,  28,  29,  30,  31
  952.     dc.w      32,  33,  34,  35,  36,  37,  38,  39
  953.     dc.w      40,  41,  42,  43,  44,  45,  46,  47
  954.     dc.w      48,  50,  52,  54,  56,  58,  60,  62
  955.     dc.w      64,  66,  68,  70,  72,  74,  76,  78
  956.     dc.w      80,  82,  84,  86,  88,  90,  92,  94
  957.     dc.w      96, 100, 104, 108, 112, 116, 120, 124
  958.     dc.w     128, 132, 136, 140, 144, 148, 152, 156
  959.     dc.w     160, 164, 168, 172, 176, 180, 184, 188
  960.     dc.w     192, 200, 208, 216, 224, 232, 240, 248
  961.     dc.w     256, 264, 272, 280, 288, 296, 304, 312
  962.     dc.w     320, 328, 336, 344, 352, 360, 368, 376
  963.     dc.w     384, 400, 416, 432, 448, 464, 480, 496
  964.     dc.w     512, 528, 544, 560, 576, 592, 608, 624
  965.     dc.w     640, 656, 672, 688, 704, 720, 736, 752
  966. _result_start:                *戻り値バッファ
  967. mask_track_result:    ds.l    1    *4*(trk_n_max+1) bytes
  968. mask_channel_result    ds.l    1    *4*(trk_n_max+1) bytes
  969. m_play_result:        ds.l    1    *4*(trk_n_max+1) bytes
  970. m_stop_result:        ds.l    1    *4*(trk_n_max+1) bytes
  971. m_cont_result:        ds.l    1    *4*(trk_n_max+1) bytes
  972.                     *SMF再生関連ワーク
  973. smf_delta:    ds.l    1        *SMF デルタタイム
  974. smf_running:    ds.l    1        *SMFランニングステータスカウンタ
  975. smf_pointer:    ds.l    1        *SMF データポインタ
  976. smf_transfer:    ds.l    1        *SMF MIDI送信エントリ
  977. smf_mst_clk:    ds.l    1        *SMFマスタークロック
  978. smf_addr:    ds.l    1        *SMFの格納アドレス
  979.  
  980. fo_ch_fm:    ds.b    8        *フェードアウト/インのワーク
  981.         ds.b    8        *DUMMY
  982. fo_ch_ad:    ds.b    16        *d0:ch fader active flag    01
  983. fo_ch_m0:    ds.b    16        *d1:master fader active flag    02
  984. fo_ch_m1:    ds.b    16        *d5:master fader move flag    20
  985. fo_ch_mr0:    ds.b    16        *d6:ch fader move flag        40
  986. fo_ch_mr1:    ds.b    16        *d7:処理したかどうか        80
  987. work:
  988. pt_ptr:        ds.l    1        *play_trk_tblの指標
  989.                     *必ずwork=pt_ptr
  990. cf    ds.b    8    *オペレータのコネクションテーブルビット
  991. ol1:    ds.b    8    *アウトプットレベル1
  992. ol2:    ds.b    8    *アウトプットレベル2
  993. ol3:    ds.b    8    *アウトプットレベル3
  994. ol4:    ds.b    8    *アウトプットレベル4
  995. opm_kon:    ds.b    8        *OPMレジスタ8番のワーク
  996. opm_nom:    ds.b    8        *オペレータマスク(OM)のNOT(&b11110000-&b11111111)
  997. _opm:        ds.b    256        *OPMのレジスタ・イメージ・ワーク
  998. opm_pmd:    dc.b    0
  999. ------------------------------------------------------------------------------
  1000.  ZMUSIC状態ワークの不当な書き替えも、演奏に支障をきたすだけでなく、ZMUSICの
  1001.  
  1002. 暴走を引き起こす可能性もあるため、細心の注意を必要とする。また、特殊な使用目的
  1003.  
  1004. 以外では、各ワークは読み出し専用と考え、書き替えはなるべく行わないように
  1005.  
  1006. したほうがよい。
  1007.  
  1008.   また、ワークはバージョンによっては内容構成が変更される可能性もあるため、
  1009.  
  1010. 自作プログラムZMUSIC状態ワークを参照する場合にはZMUSICのバージョンのチェック
  1011.  
  1012. を厳しく行った方がよい。
  1013.  
  1014.  
  1015. 13.4.ワークビュアZSV.R
  1016.  
  1017.  
  1018.  ZSV.RはZMUSIC Ver3.0以上で動作するワーク/ステータスビュアである。
  1019.  
  1020. (ZSV.RはZMUSIC STATUS VIEWRの略)
  1021.  
  1022.  ZMSやZMS等の演奏データを演奏した後、
  1023.  
  1024.     A>ZSV
  1025.  
  1026. として起動すると、演奏中に変化するZMUSIC内部のパラメータの値をリアルタイムに
  1027.  
  1028. 見ることが出来る。
  1029.  
  1030.  
  1031. 13.4.1.ZSV.Rの表示パラメータ
  1032.  
  1033.  
  1034. 13.4.1.1.コモンパラメータ
  1035.  
  1036.  
  1037.   画面一番上部には現在演奏中の曲のタイトル文字列が表示され、その下にその曲
  1038.  
  1039. 全体の動作を表すパラメータ群が表示されている。このパラメータ群を特に
  1040.  
  1041. コモンパラメータとよぶ。
  1042.  
  1043.  以下にコモンパラメータの一覧を示す。
  1044.  
  1045. ------------------------------------------------------------------------------
  1046. METER:        拍子
  1047. KEY:        調号
  1048. TEMPO:        テンポ
  1049. PLAYTIME:    演奏開始からの経過時間/演奏時間
  1050. 右上部のゲージ    演奏の進行度を表している。右が終端。
  1051.         終結する曲は曲の終わりが、
  1052.         リピート曲は1ループが、ゲージ終端に相当する。
  1053.  
  1054. AGOGIK:        アゴーギク(テンポの緩急)の振幅
  1055. WAVE:        アゴーギクの波形種別
  1056. VARIANT:    アゴーギク振幅の変化量
  1057.  
  1058. REPEAT:        現時点での演奏反復回数
  1059. FMOPM:        現在演奏中の曲のFM音源使用チャンネル数
  1060. FMOPM FADER:    FM音源部のマスターフェーダー
  1061. ADPCM:        現在演奏中の曲のADPCM音源使用チャンネル数
  1062. ADPCM FADER:    ADPCM音源部のマスターフェーダー
  1063. MIDI1:        現在演奏中の曲のMIDI1の使用チャンネル数
  1064. MIDI1 FADER:    MIDI1のマスターフェーダー
  1065. MIDI2:        現在演奏中の曲のMIDI2の使用チャンネル数
  1066. MIDI2 FADER:    MIDI2のマスターフェーダー
  1067. MIDI3:        現在演奏中の曲のMIDI3の使用チャンネル数
  1068. MIDI3 FADER:    MIDI3のマスターフェーダー
  1069. SYSTEM:        Z-MUSICのバージョン番号
  1070. TIMER:        使用タイマ
  1071.  
  1072. 最上部の5つの    それぞれFM,ADPCM,MIDI1~3のマスターフェーダーを
  1073. スライダー    表している。
  1074. ------------------------------------------------------------------------------
  1075.  
  1076.  
  1077. 13.4.1.2.トラックパラメータ
  1078.  
  1079.  
  1080.  コモンパラメータの下には、各トラック毎のワークが表示される。一度に表示できる
  1081.  
  1082. トラック数は、X680x0の画面の広さの関係から10トラックまでとなっているが、
  1083.  
  1084. カーソルキーの上下をつかってスクロールさせれば任意のトラック番号のワークを
  1085.  
  1086. 参照することができる。
  1087.  
  1088.   以下にトラックパラメータ表示部のパラメータ一覧を示す。
  1089. ------------------------------------------------------------------------------
  1090.  
  1091. オレンジ色の数字:    トラック番号
  1092. 赤、黄色、水色の文字:    トラックに割り当てられているデバイス名とチャンネル番号
  1093. STATUS:            トラックステータス
  1094. 8桁の16進数:        現在実行しているZMDのアドレス
  1095.             続いて
  1096.             ZMD,音符の種類,ゲートタイム,ステップタイム,ベロシティ
  1097.             が表示されている。
  1098.               音符が万が一ポルタメント指定の場合ならばさらに
  1099.             ポルタメント先の音符が表示される
  1100. CH.FADER:        チャンネルフェーダー
  1101. TIMBRE:            音色番号(MIDI部はバンク番号-音色番号と表示される)
  1102. VOLUME:            音量
  1103. VELOCITY:        ベロシティ(FM音源部とADPCM音源部は音量値とつねに同値)
  1104. DETUNE:            ディチューン
  1105. PITCH:            オートピッチベンダー
  1106. AFTER:            アフタータッチシーケンスのその時のアフタータッチ値
  1107. HOLD:            ダンパー(サスティン)ペダル
  1108. PAN:            パンポット
  1109.  
  1110. ARCC1~4:        ARCCの振幅
  1111. WAVE:            ARCCの波形種別
  1112. VARIANT:        ARCCの振幅の変化量
  1113. CTRL:            ARCCでコントロールしているコントロール番号
  1114.             FM音源部でワウワウやアンプリチュードモジュレーションを
  1115.             行っている場合には操作対象のオペレータ番号が
  1116.             緑色で表示される。
  1117.  
  1118. VIBRATO:        ビブラートの振幅
  1119. WAVE:            ビブラートの波形種別
  1120. VARIANT:        ビブラートの振幅の変化量
  1121.  
  1122. VELOCITY.SEQ:        ベロシティシーケンスのその時のベロシティ値
  1123. WAVE:            ベロシティシーケンスの波形種別
  1124. VARIANT:        ベロシティシーケンスの振幅の変化量
  1125.  
  1126. 鍵盤左の5つのスライダー    ARCC1~4の振幅とピッチの変化を表す。
  1127.             ARCC1 ARCC2 PITCH
  1128.             ARCC3 ARCC4
  1129.             のように配列している。
  1130.  
  1131. 鍵盤の右の○        パンポットつまみ
  1132.  
  1133. パンポットつまみの    ダンパーペダルの踏み具合。
  1134. 右のゲージ        オレンジのゲージが上に行けば行くほど深い踏み込み。
  1135.  
  1136. パンポットつまみの    赤:ノートオフメッセージなし
  1137. 右の小さい●        緑:ノートオフメッセージ有り
  1138.  
  1139. ダンパーゲージの    チャンネルフェーダー
  1140. 右のスライダー
  1141.  
  1142. 鍵盤の右のゲージ    アタックレベル
  1143.             キーオンすると立ち上がる。タイやスラーなどの手法で
  1144.             発音、音程変化しても立ち上がらない。
  1145. ------------------------------------------------------------------------------
  1146.  
  1147.  
  1148. 13.4.2.キー操作
  1149.  
  1150.  
  1151.   ZSV.Rでは
  1152.  
  1153.     A>ZP3 -K
  1154.  
  1155. によってZP3.Rを常駐させてから使用可能となるキー操作はすべて装備しており、
  1156.  
  1157. 環境変数zp3_keyctrlに記載されているキー配置情報も有効となる。環境変数
  1158.  
  1159. zp3_keyctrlについてはMEASURE7を参照のこと。
  1160.  
  1161.   以下に操作キー一覧を示す
  1162.  
  1163. ●ファンクションキー部
  1164.  
  1165. [F1]~[F10]        表示されている10トラックをそれぞれ
  1166.             マスク/マスク解除する。たとえばトラック3-12が
  1167.             表示されていると[F5]ではトラック7が操作対象となる
  1168.  
  1169. ●カーソルキー部
  1170. [↑]            上へスクロール
  1171. [↓]            下へスクロール
  1172. [HOME]            マスク反転
  1173. [DEL]            マスク全解除
  1174.  
  1175. ●フルキー部
  1176. [P]            パンポット表示モード変更(0-127←→L63-0-R63)
  1177. [,]            振幅表示モード変更(最大振幅←→振幅実行値)
  1178. [F]            FMの全チャンネルマスク/マスク解除
  1179. [B]            BANKの表示モードの設定(14bit,上位7bitのみ,7bit:7bit(デフォルト))
  1180. [SPACE]            ステータス表示の一時停止(ポーズ)
  1181.  
  1182. ●テンキー部
  1183. [9]            ADPCMの全チャンネルマスク/マスク解除
  1184. [/]            MIDI-1の全チャンネルマスク/マスク解除
  1185. [*]            MIDI-2の全チャンネルマスク/マスク解除
  1186. [-]            MIDI-3の全チャンネルマスク/マスク解除
  1187. [+]            MIDI-4の全チャンネルマスク/マスク解除
  1188.